(function($){
    $.fn.ajaxUpLoad = function(options){
        var imgSrc = []; // 图片路径
        var imgFile = []; // 文件流
        var imgName = []; // 图片的名字
        var imgBox = '#' + options.imgBox; // 显示图片的名字
        var submitBtn = '#' + options.submitBtn; // 提交的按钮
        var uploadData = '#' + options.uploadForm; // form 表单ID
        var thisObj = $(this); // 当前对象
        // 确定提交按钮
        thisObj.change(function(){
           var fileImg = $(thisObj)[0].files;
           for(var a = 0 ; a < fileImg.length ; a ++){
               // 获得图片路径
               imgSrc.push(getImgUrl(fileImg[a]));
               // 文件流
               imgFile.push(fileImg[a]);
               // 文件名字
                imgName.push(fileImg[a].name);
           }
                // 显示图片
        showImgBox(imgBox);
        })

        // 点击上传按钮图片
        $(submitBtn).on('click',function(){
            if(uploadImgLimit(options.num)){
                alert('最多上传'+options.num+'张');
                return false;
            }

            var fd = new FormData($(uploadData)[0]);
            //由于fd对象中已经包含<input type='file'>的input标签，如果不删除，就会造成重复上传
            fd.delete("file");
            console.log(imgFile)
            for(var a = 0 ; a < imgFile.length ; a ++){
                fd.append(options.data , imgFile[a]);
            }
            //上传所有的图片
		    submitPicture(options.url, fd);
        })

        // 上传图片限制
        var uploadImgLimit = function(imgLimit){
            if(imgLimit){
                return false;
            }else if(imgFile.length > options.num -1){
                return true;
            }else{
                return false;
            }
        }

        // 删除图片
        var delThisImg = function(index){
            //向数组中删除元素
            imgSrc.splice(index, 1);
            imgFile.splice(index, 1);
            imgName.splice(index, 1);
            $(imgBox +' img').eq(index).remove();
        }

        // 显示图片盒子
        var showImgBox = function(imgBox){
            console.log(imgSrc,imgName);
            $(imgBox).html('');
            for(var a = 0 ; a < imgSrc.length ; a ++){
                $(imgBox).append('<img style="width:50px;height:50px;margin:5px" src="'+ imgSrc[a] +'" title="'+imgName[a]+'" alt="'+imgName[a]+'">');
            }
            bindDelImg();
        }
        // 给图片绑定删除事件
        var bindDelImg = function(){
            $(imgBox).on('click','img',function(){
                var that = this;
                var r = confirm('确认删除吗？');
                if(r){
                    delThisImg($(that).index());
                }else{
                    return false;
                }
            })
        }

        // 获得图片路径
        var getImgUrl = function(file){
            var url = null ; 
            if(window.createObjectURL != undefined) { // basic
                url = window.createObjectURL(file);
            } else if(window.URL != undefined) { // mozilla(firefox)
                url = window.URL.createObjectURL(file);
            } else if(window.webkitURL != undefined) { // webkit or chrome
                url = window.webkitURL.createObjectURL(file);
            }
            return url;
        }

        // 上传图片
        var submitPicture = function(url , data){
            if(url && data){
                $.ajax({
                    type: "post",
                    url: url,
                    async: true,
                    data: data,
                    //下面这两个要写成false，要不然上传不了。
                    processData: false,
                    contentType: false,
                    success: function(dat) {
                        alert('成功！');
                    },
                    error:function(err){
                        alert('失败！');
                    }
                })
            }else{
                alert('参数有误');
            }
        }
    }
})(jQuery)